/**
 * stackADT.h
 * ADT stack header. use incomplete type.
 * @author:zt 2013-09-06
 */
#ifndef _STATCK_ADT_H_
 #define _STATCK_ADT_H_

#define PUBLIC /* empty */
#define PRIVATE static

typedef int Item; /* stack element type */

typedef struct stack_type *Stack; /*icomplete type's pointer type.*/

Stack create(int size);
void destroy(Stack s);
int size(void);
void make_empty(Stack s);
bool is_empty(Stack s);
bool is_full(Stack s);
void push(Statck s, Item i);
Item pop(Stack s);
 
#endif
